home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / programs / mbbs12d.zip / MACROREG.MAC < prev    next >
Text File  |  1992-06-23  |  12KB  |  360 lines

  1.  
  2.                           MACROREG.MAC v1.2d
  3.                  by Jeff Oberlee   (C)opyright 1992
  4.  
  5. {:alr}  {MACL MACROBBS.MAC,WF3}     {:alu}  {MACL MACROBBS.MAC,bbs}
  6.  
  7. {:esc_menu}
  8.   {IFCA ,ESM}  {SEND ^J^M%an7%%an9%Time comes to a grinding halt!  %an0}
  9. {:ESM}  {SETE-P0 ESM2}  {SETV ch}
  10.   {PARM ,,,,0}
  11.   {INPU ch, PRESS:  [ENTER] to CHAT, [U]seredit, [D]OS, [H]angup}
  12.   {COMP ch,h}  {IFCO ESM4}
  13.   {COMP ch,d}  {IFCO ESM5}
  14.   {COMP on,}   {IFCO ESM}
  15.   {COMP ch,u}  {IFCO ESM3}
  16.   {COMP ch,}   {IFCO ,ESM}
  17. {:ESM1}  {COMP cf,}   {IFCO CT8,ESM}
  18. {:ESM2}  {SETE-P0 esc_menu}
  19.   {IFCA ,ESM6}  {SEND %an3%Then suddenly...}  {PAUS 1}
  20. {:ESM6}  {RETURN}
  21. {:ESM5}  {SHEL}  {GOTO ESM}
  22. {:ESM3}  {COMP open,y}  {IFCO ESM}
  23. {:ESM8}  {COMP login_name,}  {IFCO ESM}
  24.   {SETV lname,%login_name}  {INPU lname,EDIT: Handle  (3-30 characters)}
  25.   {COMP lname,1}  {IFCO-GE ESM8}
  26.   {LENG %lname}  {COMP _len,3}  {IFCO-L ESM8}
  27.   {LENG %lname}  {COMP _len,30}  {IFCO-G ESM8}
  28. {:ESM9}  {SETV temp,%protocol}  {INPU temp,EDIT: Protocol  (1 letter)}
  29.   {LENG %temp}  {COMP _len,1}  {IFCO ,ESM9}
  30. {:ESM0}  {SETV ch,%al}  {INPU ch,EDIT: Access Level  (0-999)}
  31.   {COMP ch,999}  {IFCO-G ESM0}
  32.   {SETV al,%ch}
  33.   {SETV protocol,%temp}
  34.   {SETV row,%_row}  {SETV col,%_col}  {DISP 2,2,0F,%an9 * Saving * }
  35.   {COMP lname,%login_name}  {IFCO ESM7}
  36.   {SETV login_name,%lname}
  37.   {SETE time_out}
  38.   {CALL update_clist}
  39. {:ESM7}  {CALL write_user}
  40.   {DISP 2,2,07,            }
  41.   {DISP %row,%col,,}
  42.   {SETV row}  {SETV col}  {SETV lname}
  43.   {GOTO ESM}
  44. {:ESM4} {SETV s,2}  {GOTO time_out}
  45.  
  46. {:chat}
  47.   {SETV temp,0}  {SETV ccount,0}
  48.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : Chat request}  {WCLO}
  49.   {SEND ^J^M^J%an4%Paging %sysop ...^J^M}
  50.   {SPOC n}  {SEND %an3%Press %an0[ESC]%an3 then %an0[ENTER]%an3 to chat with%an7 %login_name %an3...^J^M}  {SPOC y}
  51. {:CT7}  {INCR ccount}  {SETV-S ch,an%ccount}
  52.   {SEND %ch█}
  53.   {SEND ^G}  {SEND ^G}  {SEND ^G}  {PAUS 2}
  54.   {COMP ccount,5}  {IFCO-G ,CT7}
  55. {:CT6}  {SETV chat,CHAT}
  56.   {SEND ^M%an0%Sorry, %sysop isn't around right now.^J^M}
  57.   {SEND %an0%However, the chat flag has been set.^J^M^J}
  58.   {GOTO CT9}
  59. {:CT8}  {SETV tl,%_ela}
  60.   {SETG 240,time_out}
  61.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : Started chat}  {WCLO}
  62.   {COMP cb,y}  {IFCO ,CT14}
  63.   {CAPT y,%datadir%CHAT.LOG}
  64. {:CT14}  {SEND ^J^M^J%an3%You've just entered . . . %an7%The Twilight Zone.  %an3%Reality vanishes.^J^M}
  65.   {SEND %an2(Type "%an0%bye!%an2" on a blank line to exit when desired.)^J^M}
  66.   {SETV cf,1}  {SETV co1,%an0}  {SETV co2,%an3}
  67.   {SETE-P0 esc_menu}
  68.   {PUSH}
  69. {:CT2}  {COMP cf,1}  {IFCO CT3}
  70.   {SEND %co2}  {SETV cf,1}  {GOTO CT4}
  71. {:CT3}  {SEND %co1}  {SETV cf,2}
  72. {:CT4}  {SETV cline}
  73. {:CT5}  {SEND ^J}
  74. {:CT13}  {SEND ^M%cline}
  75.   {GETS-AH cline,78,CT2}
  76.   {COMP cline,/c}  {IFCO switch_c}
  77.   {COMP cline,bye!}  {IFCO CT1}
  78.   {COMP cline,bye!!}  {IFCO time_out}
  79.   {COMP cline,/scroll}  {IFCO view_scroll}
  80.   {COMP cline,NO CARRIER}  {IFCO time_out}
  81.   {LENG %cline}  {COMP %_len,77}  {IFCO-LE CT4}
  82.   {SETV ccount,80}  {SETV dline,0}  {SETV cline, %cline}
  83. {:CT11} {DECR ccount}  {INCR dline}
  84.   {COMP ccount,60}  {IFCO-LE CT4}
  85.   {SUBS ch,%ccount,1,%cline}
  86.   {COMP ch, }  {IFCO ,CT11}
  87.   {COMP ccount,79}  {IFCO CT4}
  88.   {INCR ccount}
  89.   {SUBS cline,%ccount,%dline,%cline}
  90.   {SETV ccount,0}
  91. {:CT12} {INCR ccount}  {SEND ^H}
  92.   {COMP ccount,%dline}  {IFCO ,CT12}
  93.   {GOTO CT5}
  94. {:CT1}  {CAPT n}
  95.   {SETV ch,%_ela}  {DECR ch,%tl}  {INCR tlc,%ch}  {SETV tl}
  96.   {SEND ^J^M^J%an3%You've just left . . . %an7%The Twilight Zone.  %an3%Reality restored.^J^M^J}
  97.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : Ended chat}  {WCLO}
  98.   {SETV cf}  {SETV co1}  {SETV co2}  {SETV chat}  {SETV cline}
  99.   {POPS}
  100. {:CT9}  {SETV ccount}
  101.   {SETE-P0 esc_menu}
  102.   {CALL press_any_key}
  103.   {RETURN}
  104.  
  105. {:switch_c}
  106. {:SW1}  {SEND ^M%an0(0 %an1%1 %an2%2 %an3%3 %an4%4 %an5%5 %an6%6 %an7%7%an0)  ^H}
  107.   {GETS-H ch,1,SW1}
  108.   {COMP ch,0}  {IFCO-L SW1}
  109.   {COMP ch,7}  {IFCO-G SW1}
  110.   {SEND ^M                    ^M}
  111.   {COMP cf,1}  {IFCO ,SW3}
  112.   {SETV-S co2,an%ch}  {SEND %co2}  {GOTO SW4}
  113. {:SW3}  {SETV-S co1,an%ch}  {SEND %co1}
  114. {:SW4}  {SETV cline}
  115.   {GOTO CT13}
  116.  
  117. {:view_scroll}
  118.   {SCROLL}
  119.   {GOTO CT4}
  120.  
  121. {:update_clist}
  122.   {ROPE %datadir%CALLERS.LST,UC1}
  123.   {WOPE %datadir%TEMP.000}
  124. {:UC2}  {READ ch}  {READ cline}  {READ dline}
  125.   {COMP ch,%userno}  {IFCO UC3}
  126.   {WRIT %ch}  {WRIT %cline}  {WRIT %dline}  {GOTO UC2}
  127. {:UC3}  {COMP s,1}  {IFCO UC5}
  128. {:UC4}  {WRIT %ch}
  129.   {WRIT %login_name}
  130.   {WRIT %password}
  131. {:UC5}  {READ dline}  {WRIT %dline}  {GOTO UC5}
  132. {:UC1}  {WCLO}
  133.   {EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
  134.   {EXEC-N DEL %datadir%TEMP.000}
  135.   {RETURN}
  136.  
  137. {:write_user}
  138.   {WOPE %userdir%%userno.MHS}
  139.   {WRIT %login_name}
  140.   {WRIT %password}
  141.   {WRIT %al}
  142.   {WRIT %protocol}
  143.   {WRIT %expert}
  144.   {WRIT %a}
  145.   {WRIT %fa}
  146.   {WCLO}
  147.   {RETURN}
  148.  
  149. {:time_out}
  150.   {IFCA TO}
  151.   {MACL MACROBBS.MAC,time_out}
  152. {:TO}  {MACL MACROBBS.MAC,gby}
  153.  
  154. {:cls}
  155.   {CLEA}
  156.   {COMP on,}  {IFCO CLS3}
  157.   {COMP mnu,A}  {IFCO CLS1}
  158.   {SEND ^[[2J}
  159.   {GOTO CLS2}
  160. {:CLS1} {SEND ^L}
  161. {:CLS2} {DISP 1,1,4F,│                                                                              }
  162.   {DISP 1,3,4E,%login_name #%userno}
  163.   {DISP 1,40,47,AL=%al}
  164.   {DISP 1,48,47,%mspeed}
  165.   {DISP 1,57,47,%_ela mins}
  166.   {DISP 1,70,4F,%an9%%chat}
  167.   {DISP 2,1,4F,└──────────────────────────────────────────────────────────────────────────────}
  168.   {DISP 3,1,07,}
  169. {:CLS3}  {RETURN}
  170.  
  171. {:press_any_key}
  172.   {COMP mnu,a}  {IFCO PAK1}
  173.   {SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
  174.   {GOTO PAK2}
  175. {:PAK1} {SEND ^J^M^J[Press Any Key]}
  176. {:PAK2} {SETG 240,time_out}
  177.   {GETS-H temp,1,PAK}
  178. {:PAK}  {SEND ^M               ^M}
  179.   {SETV temp}
  180.   {RETURN}
  181.  
  182. {:cd}
  183.   {IFCA cd1}
  184.   {COMP on,1}  {IFCO time_out}
  185. *-{:cd1}  {COMP on,1}  {IFCO ,cd2}
  186.   {COMP _ela,%tlc}  {IFCO-GE time_out}
  187. {:cd2}  {RETURN}
  188.  
  189. {:expert_tog}
  190.   {COMP expert,ON}
  191.   {IFCO ET1}
  192.   {SETV expert,ON}
  193.   {GOTO ET2}
  194. {:ET1}  {SETV expert,OFF}
  195. {:ET2}  {RETURN}
  196.  
  197. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  198. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  199. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  200. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  201. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  202.  
  203. {:start}
  204.   {SETE-P0 esc_menu}
  205.   {PUSH}
  206. {:ST}  {COMP expert,ON}  {IFCO ST4}
  207. {:ST1}  {CALL cls}
  208.   {SEND ^J^M^J^J%an1}
  209.   {SEND ^J^M             ┌───────────────────────────────────────────────────┐}
  210.   {SEND ^J^M             │ %an0░░░░░░░░░░░%an7  H A L L   O F   F A M E  %an0░░░░░░░░░░░%an1 │}
  211.   {SEND ^J^M             └───────────────────────────────────────────────────┘^J^M^J}
  212.  
  213.   {SEND %an1        [%an0%E%an1]%an1 Enter your info      [%an0%V%an1] View an entry    [%an0%M%an1] Message Base^J^M}
  214.   {SEND %an1        [%an0%D%an1]%an1 Display Your entry   [%an0%C%an1] Chat             [%an0%F%an1] File Base^J^M}
  215.   {SEND %an1        [%an0%U%an1]%an1 Update your entry    [%an0%X%an1] Xpert Toggle     [%an0%Q%an1] MAIN MENU^J^M}
  216.  
  217. {:ST4}  {SEND ^J^M^J%an1%Hall of Fame  %an0%%_tim^J^M}
  218.   {SETV ch,%tlc}  {DECR ch,%_ela}
  219.   {SEND %an0%Mins Left: %ch^J^M}
  220. {:ST6}  {SEND ^M}  {COMP expert,ON}  {IFCO ,ST5}
  221.   {SEND %an1(%an7?%an1%=menu) }
  222. {:ST5}  {SEND %an7%HOF Command:%an3  ^H}
  223.   {SETG 240,ST0}
  224. {:ST3}  {CALL cd}
  225.   {GETS-H ch,1,ST3}
  226.   {COMP ch,*}  {IFCO time_out}
  227.   {COMP ch,?}  {IFCO ST1}
  228.   {COMP ch,e}  {IFCO enter}
  229.   {COMP ch,d}  {IFCO display}
  230.   {COMP ch,u}  {IFCO modify}
  231.   {COMP ch,v}  {IFCO view}
  232.   {COMP ch,c}  {IFCO chat}
  233.   {COMP ch,x}  {IFCO expert_tog}
  234.   {COMP ch,m}  {IFCO msg_base}
  235.   {COMP ch,f}  {IFCO file_tran}
  236.   {COMP ch,q}  {IFCO ST0,ST6}
  237.  
  238. {:ST0}  {SETV count}  {SETV mcount}  {SETV dline}  {SETV df}
  239.   {SETV temp}  {SETV to}  {SETV lname}
  240.   {MACL MACROBBS.MAC,main_menu}
  241.  
  242. {:msg_base}
  243.   {IFEX %msgsdir%A%a.BAS,MB2}
  244.   {IFEX %msgsdir%A*.BAS,,ST6}
  245.   {SETV a,0}
  246. {:MB1}  {INCR a}
  247.   {COMP a,%mhigh}  {IFCO-G ST6}
  248.   {IFEX %msgsdir%A%a.BAS,,MB1}
  249. {:MB2}
  250.   {ROPE %msgsdir%A%a.BAS,MB1}  {READ ch}  {READ ch}  {RCLO}
  251.   {COMP ch,%al)  {IFCO-G MB1}
  252.   {MACL MACROMSG.MAC,start}
  253.  
  254. {:file_tran}
  255.   {IFEX %filedir%F%fa.BAS,FX2}
  256.   {IFEX %filedir%F*.BAS,,ST6}
  257.   {SETV fa,0}
  258. {:FX1}  {INCR fa}
  259.   {COMP fa,%fhigh}  {IFCO-G ST6}
  260.   {IFEX %filedir%F%fa.BAS,,FX1}
  261. {:FX2}
  262.   {ROPE %filedir%F%fa.BAS,FX1}  {READ ch}  {READ ch}  {RCLO}
  263.   {COMP ch,%al)  {IFCO-G FX1}
  264.   {MACL MACROFIL.MAC,start}
  265.  
  266. {:enter}
  267.   {IFEX %userdir%%userno.REG,E0}
  268.   {CALL cls}
  269.   {SEND %an3%Your Personal Public Profile...^J^M}
  270.   {SEND %an0%Press ENTER to skip any question.  Max # of chars appear in []'s.^J^M}
  271.   {ROPE %datadir%QUESTION.DAT,E3}
  272.   {WOPE %userdir%%userno.reg}
  273.   {SETV count,0}
  274. {:E1}  {SEND ^J^M}
  275.   {READ ch}  {READ dline}  {INCR count}
  276.   {SEND %an7%%count.%an0 %dline [%ch]: %an7}
  277.   {SETG 120,ST}
  278.   {GETS dline,%ch,E2}
  279. (:E2}  {WRIT %dline}
  280.   {GOTO E1}
  281. {:E3}  {SEND ^J^M^J%an1%Saving...}
  282.   {WCLO}
  283.   {SETV dline}  {SETV ch}  {SETV count}
  284.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : Entered HOF personal profile}  {WCLO}
  285.   {SEND %an0%OK}  {PAUS 1}
  286.   {GOTO ST}
  287. {:E0}  {SEND ^J^M^J%an1%Your entry already exists.  You can [%an0%U%an1]pdate it.^J^M^J}
  288.   {GOTO ST6}
  289.  
  290. {:display}
  291.   {SETV lname,Your}    {SETV to,%userno}
  292.   {IFEX %userdir%%to.REG,,D0}
  293. {:V1}  {CALL cls}
  294.   {SEND %an3%%lname Personal Public Profile...^J^M}
  295.   {SETV mcount,0}
  296. {:D1}  {SEND ^J^M}  {SETV count,0}  {INCR mcount}
  297.   {ROPE %datadir%QUESTION.DAT,D5}
  298. {:D2}  {INCR count}  {READ dline}  {READ dline}
  299.   {COMP count,%mcount}  {IFCO ,D2}
  300. {:D6}   {RCLO}  {SEND %an0%%dline: }  {SETV count,0}
  301.   {ROPE %userdir%%to.REG,D1}
  302. {:D3}  {INCR count}  {READ dline}
  303.   {COMP count,%mcount}  {IFCO ,D3}
  304.   {RCLO}  {SEND %an7%%dline}
  305.   {GOTO D1}
  306. {:D0}  {SEND ^J^M^J%an1%Caller's entry not found.^J^M^J}
  307.   {GOTO ST6}
  308. {:D5}  {COMP expert,ON}  {IFCO ST}
  309.   {CALL press_any_key}
  310.   {GOTO ST}
  311. {:D4}  {SEND ^J^M^J%an1%Caller's entry not found.}
  312.   {GOTO view}
  313. {:D8}  {RETURN}
  314.  
  315. {:modify}
  316.   {IFEX %userdir%%userno.REG,,D0}
  317.   {CALL cls}
  318.   {EXEC-N DEL %datadir%TEMP.000}
  319.   {SEND %an3%Your Personal Public Profile...^J^M}
  320.   {SEND %an0%Use BACKSPACE to edit/erase an entry.  Max # of chars appear in []'s.^J^M}
  321.   {SETV count,0}  {SETV mcount,0}
  322. {:M1}  {SEND ^J^M}
  323.   {INCR mcount}
  324.   {ROPE %datadir%QUESTION.DAT,M7}
  325. {:M2}  {READ ch}  {READ dline}  {INCR count}
  326.   {COMP count,%mcount}  {IFCO ,M2}
  327.   {RCLO}  {SEND %an7%%mcount.%an0 %dline [%ch]: }
  328.   {SETV count,0}
  329.   {ROPE %userdir%%userno.REG,M0}
  330. {:M3}  {INCR count}  {READ dline}
  331.   {COMP count,%mcount}  {IFCO ,M3}
  332.   {RCLO}  {SETV count,0}
  333. {:M6}  {SEND %an7%%dline}
  334.   {SETG 120,time_out}
  335. {:M5}  {GETS-A dline,%ch}
  336.   {WOPE-A %datadir%TEMP.000}  {WRIT %dline}  {WCLO}
  337.   {GOTO M1}
  338. {:M0}  {SETV dline,}
  339.   {GOTO M6}
  340. {:M7}  {SEND ^J^M^J%an1%Saving...}
  341.   {EXEC-N COPY %datadir%TEMP.000 %userdir%%userno.REG}
  342.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : Updated HOF personal profile}  {WCLO}
  343.   {SETV dline}  {SETV ch}  {SETV count}
  344.   {SEND %an0%OK}  {PAUS 1}
  345.   {GOTO ST}
  346.  
  347. {:view}
  348.   {SEND ^J^M^J%an3%Enter a handle or ID# %an0%(ENTER=quit) :%an3 }
  349.   {GETS to,30,ST}
  350.   {ROPE %datadir%CALLERS.LST,MNU2}
  351. {:MNU1} {READ ch}  {READ lname}  {READ dline}
  352.   {COMP to,%ch}  {IFCO MNU5}
  353.   {COMP to,%lname}  {IFCO ,MNU1}
  354.   {SETV to,%ch}
  355. {:MNU5} {RCLO}
  356.   {SETV lname,%lname%'s}
  357.   {IFEX %userdir%%to.REG,V1,D4}
  358. {:MNU2} {SEND ^J^M^J%an1%ID not found.}
  359.   {GOTO view}
  360.